This invention relates to a system for storing and retrieving information or data.
Databases are known systems for storing information and data. Data is stored in a number of distinct internal partitions known as tables which comprise one or more fields and records. A field, which is a column of the table, is defined by a space in memory used to hold one or more data values of a predetermined type. It is assumed that the data values at the same or at a corresponding position across different fields, and which therefore form a single row of the table, are related. A row of data values is called a record.
For example, a column of numbers, regardless of any heading the column has, such as telephone numbers, when taken by itself offers little information to a user. It is only by providing a second column of data, such as names which correspond to the numbers, that the numbers take on a meaning. The relationship between data values in tables is therefore made implicitly by association.
Tables provide a simple and elegant way of storing and ordering data. However, in order to create a table in memory, the designer of a table must know in advance what type of data the table will store so that sufficient and appropriate fields can be allocated and named. The creation of a table thus requires considerable forward thinking and planning to ensure that the data is correctly and sensibly ordered. Although in some databases, existing tables can be expanded by the addition of new fields, it is still necessary to know, before a field is added, the intended nature of data it will hold so that it can be properly defined.
The necessity of having to name every field and define the type of data it holds in advance is not only a burden for the designer of a table, it is also a burden for the user who wishes to add data values to the table or extract data from it. Often in a database there will be a large number of tables, connected together in some way, so that the records or field in one table relate to those in another. Thus, in order to access the data in a database, the user needs to know the table in which the desired data is stored, and the field in which the desired data is stored. This can make data difficult to retrieve for users who are not familiar with the contents of a particular table or who have a large number of tables or databases to search through.
One known system which does not require the intended type of data that is to be stored to be formally declared in advance is the Neural Network. Such networks are trained with a large amount of input data until the desired output response is learned. Once a network is trained, a user may present an input to it and receive an output which is dependent on the training but which may be unpredictable at the time of input. There is however no indication of why the input produces a particular output, and the user will have to infer the relationship himself.
A prior art system known as the Datalayer, described in International Patent No. WO 00/14654 disposes with the need for a designer to specify fields and tables in advance, by allowing fields to be allocated to data at the time it is input. The relationship between the fields that are used must be declared when the data is input in order to preserve the relationship between the contents of the different fields.
We have appreciated that it would be desirable to provide a structure for the storage and retrieval of data which require no prior knowledge of what data is held on the part of either the creator of the data structure or on the part of the user.